package niconama03.worker.impl;

import niconama03.worker.Worker;

/**
 * 抽象的な働く人
 * 
 * @author brigen
 */
abstract class AbstractWorker implements Worker {

	/**
	 * 働く
	 */
	@Override
	public void work() {
		System.out.println("「" + getName() + "」");
		System.out.println("---朝---");
		workMorning();
		System.out.println("---昼---");
		workNoon();
		System.out.println("---夜---");
		workNight();
	}

	/**
	 * 名前を返す
	 *
	 * @return 名前
	 */
	abstract protected String getName();

	/**
	 * 朝働く
	 */
	abstract protected void workMorning();

	/**
	 * 昼働く
	 */
	abstract protected void workNoon();

	/**
	 * 夜働く
	 */
	abstract protected void workNight();
}
